package oprecocerto.entity;

import oprecocerto.commom.Util;

import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.KeyFactory;

public class Funcionario {

	public static void createOrUpdateFuncionario(String nome, String salario, String salarioEncargos, String horas) {
		Entity funcionario = getSingleFuncionario(nome);
		if (funcionario == null) {
			funcionario = new Entity("Funcionario", nome);
			funcionario.setProperty("nome", nome);
			Double salarioDouble = Double.parseDouble(salario);
			Double salarioEncargosDouble = Double.parseDouble(salarioEncargos);
			Integer horasDouble = Integer.parseInt(horas);
			funcionario.setProperty("salario", salarioDouble);
			funcionario.setProperty("horas", horasDouble);
			funcionario.setProperty("salarioEncargos", salarioEncargosDouble);
			funcionario.setProperty("valorHora", salarioEncargosDouble/horasDouble);

		} else {
			if (nome != null && !"".equals(nome)) {
				funcionario.setProperty("nome", nome);
			}
			if (salario != null && !"".equals(salario)) {
				Double salarioDouble = Double.parseDouble(salario);
				Double salarioEncargosDouble = Double.parseDouble(salarioEncargos);
				funcionario.setProperty("salario", salarioDouble);
				funcionario.setProperty("salarioEncargos", salarioEncargosDouble);
			}
			if (horas != null && !"".equals(horas)) {
				Integer horasDouble = Integer.parseInt(horas);
				funcionario.setProperty("horas", horasDouble);
			}
			if (salario != null && horas != null && !"".equals(salario)&&!"".equals(horas)) {
				Double salarioEncargosDouble = Double.parseDouble(salarioEncargos);
				Integer horasDouble = Integer.parseInt(horas);
				funcionario.setProperty("valorHora", salarioEncargosDouble/horasDouble);
			}
			
			
		}
		Util.persistEntity(funcionario);
	}

	public static Iterable<Entity> getAllFuncionario() {
		Iterable<Entity> entities = Util.listEntities("Funcionario", null, null);
		return entities;
	}

	public static Iterable<Entity> getFuncionario(String nome) {
		Iterable<Entity> entities = Util
				.listEntities("Funcionario", "nome", nome);
		return entities;
	}

	public static Entity getSingleFuncionario(String nome) {
		Key key = KeyFactory.createKey("Funcionario", nome);
		return Util.findEntity(key);
	}
}
